export const name = 'sdp_sql'
export const module = 'sdp_sql'
export const title = 'SQL'

import { ref } from 'vue'
export function init(self) {
  const obj = {
    name,
    module,
    title,
    columns: [
      {
        prop: 'id',
        label: '编号',
        hide: true,
      },
      {
        prop: 'workspace_name',
        label: '工作区',
        sort_by_gbk: true,
      },
      {
        prop: 'table_name',
        label: '表',
        sort_by_gbk: true,
      },
      {
        prop: 'parameter_catalog',
        label: '分类',
      },
      {
        prop: 'parameter_catalog_type',
        label: '方法名',
      },
      {
        prop: 'name',
        label: '字段名称',
      },
      {
        prop: 'java_type',
        label: '字段java类型',
      },
      {
        prop: 'remarks',
        label: '备注',
      },
      {
        prop: 'parameter_is_like',
        label: '字段是否为Like',
      },
      {
        prop: 'parameter_sql_value',
        label: '字段在SQL中的表达式值',
      },
      {
        prop: 'parameter_without_test',
        label: '字段是否不在XML中生成test',
      },
      {
        prop: 'parameter_sql',
        label: 'SQL',
      },
      {
        prop: 'parameter_nullable',
        label: '字段是否允许为空',
      },
      {
        prop: 'parameter_sql_value_ignore',
        label: '是否不在SQL中查找表达式值',
      },
      {
        prop: 'java_imports',
        label: 'java引入类',
      },
      {
        prop: 'java_return_type',
        label: 'java返回类型',
      },
      {
        prop: 'is_interface',
        label: '是否为接口',
      },
      {
        prop: 'parameter_is_import_excel',
        label: '是否为导入Excel方法',
      },
      {
        prop: 'parameter_is_export_excel',
        label: '是否为导出Excel方法',
      },
      {
        prop: 'extra_info',
        label: '扩展属性',
      },
      {
        prop: 'sort_no',
        label: '排序',
      },
      {
        prop: 'parameter_mode',
        label: '方式',
      },
    ],
    editColumns: [
      {
        prop: 'id',
        label: '编号',
        disabled: true,
        hide: true,
      },
      {
        prop: 'workspace_name',
        label: '工作区',
      },
      {
        prop: 'table_name',
        label: '表',
      },
      {
        prop: 'parameter_catalog',
        label: '分类',
      },
      {
        prop: 'parameter_catalog_type',
        label: '方法名',
      },
      {
        prop: 'name',
        label: '字段名称',
      },
      {
        prop: 'java_type',
        label: '字段java类型',
      },
      {
        prop: 'remarks',
        label: '备注',
      },
      {
        prop: 'parameter_is_like',
        label: '字段是否为Like',
      },
      {
        prop: 'parameter_sql_value',
        label: '字段在SQL中的表达式值',
      },
      {
        prop: 'parameter_without_test',
        label: '字段是否不在XML中生成test',
      },
      {
        prop: 'parameter_sql',
        label: 'SQL',
      },
      {
        prop: 'parameter_nullable',
        label: '字段是否允许为空',
      },
      {
        prop: 'parameter_sql_value_ignore',
        label: '是否不在SQL中查找表达式值',
      },
      {
        prop: 'java_imports',
        label: 'java引入类',
      },
      {
        prop: 'java_return_type',
        label: 'java返回类型',
      },
      {
        prop: 'is_interface',
        label: '是否为接口',
      },
      {
        prop: 'extra_info',
        label: '扩展属性',
      },
      {
        prop: 'sort_no',
        label: '排序',
      },
      {
        prop: 'parameter_mode',
        label: '方式',
      },
      {
        prop: 'parameter_is_import_excel',
        label: '是否为导入Excel方法',
      },
      {
        prop: 'parameter_is_export_excel',
        label: '是否为导出Excel方法',
      },
      // {
      //   prop: 'remark',
      //   label: '备注',
      // },
    ],

    queryColumns: [
    ],

    remoteConfig: {
      count: {module, method: 'count'},
      list: {module, method: 'list'},
      export_excel: {module, method: 'export_excel'},
      edit: {module, method: 'update', keys: [
        'id',
      ]},
      add: {module, method:'add'},
      delete: {module, method: 'delete', keys: [
        'id',
      ]},
    }
  }
  for(let p in obj) {
    self[p] = ref(obj[p])
  }
}
